package com.esyoga.yoyoga.pojo;

import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

@Component
public class TOrderExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TOrderExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andOIdIsNull() {
            addCriterion("o_id is null");
            return (Criteria) this;
        }

        public Criteria andOIdIsNotNull() {
            addCriterion("o_id is not null");
            return (Criteria) this;
        }

        public Criteria andOIdEqualTo(Integer value) {
            addCriterion("o_id =", value, "oId");
            return (Criteria) this;
        }

        public Criteria andOIdNotEqualTo(Integer value) {
            addCriterion("o_id <>", value, "oId");
            return (Criteria) this;
        }

        public Criteria andOIdGreaterThan(Integer value) {
            addCriterion("o_id >", value, "oId");
            return (Criteria) this;
        }

        public Criteria andOIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("o_id >=", value, "oId");
            return (Criteria) this;
        }

        public Criteria andOIdLessThan(Integer value) {
            addCriterion("o_id <", value, "oId");
            return (Criteria) this;
        }

        public Criteria andOIdLessThanOrEqualTo(Integer value) {
            addCriterion("o_id <=", value, "oId");
            return (Criteria) this;
        }

        public Criteria andOIdIn(List<Integer> values) {
            addCriterion("o_id in", values, "oId");
            return (Criteria) this;
        }

        public Criteria andOIdNotIn(List<Integer> values) {
            addCriterion("o_id not in", values, "oId");
            return (Criteria) this;
        }

        public Criteria andOIdBetween(Integer value1, Integer value2) {
            addCriterion("o_id between", value1, value2, "oId");
            return (Criteria) this;
        }

        public Criteria andOIdNotBetween(Integer value1, Integer value2) {
            addCriterion("o_id not between", value1, value2, "oId");
            return (Criteria) this;
        }

        public Criteria andOCIdIsNull() {
            addCriterion("o_c_id is null");
            return (Criteria) this;
        }

        public Criteria andOCIdIsNotNull() {
            addCriterion("o_c_id is not null");
            return (Criteria) this;
        }

        public Criteria andOCIdEqualTo(Integer value) {
            addCriterion("o_c_id =", value, "oCId");
            return (Criteria) this;
        }

        public Criteria andOCIdNotEqualTo(Integer value) {
            addCriterion("o_c_id <>", value, "oCId");
            return (Criteria) this;
        }

        public Criteria andOCIdGreaterThan(Integer value) {
            addCriterion("o_c_id >", value, "oCId");
            return (Criteria) this;
        }

        public Criteria andOCIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("o_c_id >=", value, "oCId");
            return (Criteria) this;
        }

        public Criteria andOCIdLessThan(Integer value) {
            addCriterion("o_c_id <", value, "oCId");
            return (Criteria) this;
        }

        public Criteria andOCIdLessThanOrEqualTo(Integer value) {
            addCriterion("o_c_id <=", value, "oCId");
            return (Criteria) this;
        }

        public Criteria andOCIdIn(List<Integer> values) {
            addCriterion("o_c_id in", values, "oCId");
            return (Criteria) this;
        }

        public Criteria andOCIdNotIn(List<Integer> values) {
            addCriterion("o_c_id not in", values, "oCId");
            return (Criteria) this;
        }

        public Criteria andOCIdBetween(Integer value1, Integer value2) {
            addCriterion("o_c_id between", value1, value2, "oCId");
            return (Criteria) this;
        }

        public Criteria andOCIdNotBetween(Integer value1, Integer value2) {
            addCriterion("o_c_id not between", value1, value2, "oCId");
            return (Criteria) this;
        }

        public Criteria andOBanlanceIsNull() {
            addCriterion("o_banlance is null");
            return (Criteria) this;
        }

        public Criteria andOBanlanceIsNotNull() {
            addCriterion("o_banlance is not null");
            return (Criteria) this;
        }

        public Criteria andOBanlanceEqualTo(BigDecimal value) {
            addCriterion("o_banlance =", value, "oBanlance");
            return (Criteria) this;
        }

        public Criteria andOBanlanceNotEqualTo(BigDecimal value) {
            addCriterion("o_banlance <>", value, "oBanlance");
            return (Criteria) this;
        }

        public Criteria andOBanlanceGreaterThan(BigDecimal value) {
            addCriterion("o_banlance >", value, "oBanlance");
            return (Criteria) this;
        }

        public Criteria andOBanlanceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("o_banlance >=", value, "oBanlance");
            return (Criteria) this;
        }

        public Criteria andOBanlanceLessThan(BigDecimal value) {
            addCriterion("o_banlance <", value, "oBanlance");
            return (Criteria) this;
        }

        public Criteria andOBanlanceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("o_banlance <=", value, "oBanlance");
            return (Criteria) this;
        }

        public Criteria andOBanlanceIn(List<BigDecimal> values) {
            addCriterion("o_banlance in", values, "oBanlance");
            return (Criteria) this;
        }

        public Criteria andOBanlanceNotIn(List<BigDecimal> values) {
            addCriterion("o_banlance not in", values, "oBanlance");
            return (Criteria) this;
        }

        public Criteria andOBanlanceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("o_banlance between", value1, value2, "oBanlance");
            return (Criteria) this;
        }

        public Criteria andOBanlanceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("o_banlance not between", value1, value2, "oBanlance");
            return (Criteria) this;
        }

        public Criteria andONumIsNull() {
            addCriterion("o_num is null");
            return (Criteria) this;
        }

        public Criteria andONumIsNotNull() {
            addCriterion("o_num is not null");
            return (Criteria) this;
        }

        public Criteria andONumEqualTo(String value) {
            addCriterion("o_num =", value, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumNotEqualTo(String value) {
            addCriterion("o_num <>", value, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumGreaterThan(String value) {
            addCriterion("o_num >", value, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumGreaterThanOrEqualTo(String value) {
            addCriterion("o_num >=", value, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumLessThan(String value) {
            addCriterion("o_num <", value, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumLessThanOrEqualTo(String value) {
            addCriterion("o_num <=", value, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumLike(String value) {
            addCriterion("o_num like", value, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumNotLike(String value) {
            addCriterion("o_num not like", value, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumIn(List<String> values) {
            addCriterion("o_num in", values, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumNotIn(List<String> values) {
            addCriterion("o_num not in", values, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumBetween(String value1, String value2) {
            addCriterion("o_num between", value1, value2, "oNum");
            return (Criteria) this;
        }

        public Criteria andONumNotBetween(String value1, String value2) {
            addCriterion("o_num not between", value1, value2, "oNum");
            return (Criteria) this;
        }

        public Criteria andOAlinumIsNull() {
            addCriterion("o_alinum is null");
            return (Criteria) this;
        }

        public Criteria andOAlinumIsNotNull() {
            addCriterion("o_alinum is not null");
            return (Criteria) this;
        }

        public Criteria andOAlinumEqualTo(String value) {
            addCriterion("o_alinum =", value, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumNotEqualTo(String value) {
            addCriterion("o_alinum <>", value, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumGreaterThan(String value) {
            addCriterion("o_alinum >", value, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumGreaterThanOrEqualTo(String value) {
            addCriterion("o_alinum >=", value, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumLessThan(String value) {
            addCriterion("o_alinum <", value, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumLessThanOrEqualTo(String value) {
            addCriterion("o_alinum <=", value, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumLike(String value) {
            addCriterion("o_alinum like", value, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumNotLike(String value) {
            addCriterion("o_alinum not like", value, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumIn(List<String> values) {
            addCriterion("o_alinum in", values, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumNotIn(List<String> values) {
            addCriterion("o_alinum not in", values, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumBetween(String value1, String value2) {
            addCriterion("o_alinum between", value1, value2, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOAlinumNotBetween(String value1, String value2) {
            addCriterion("o_alinum not between", value1, value2, "oAlinum");
            return (Criteria) this;
        }

        public Criteria andOStateIsNull() {
            addCriterion("o_state is null");
            return (Criteria) this;
        }

        public Criteria andOStateIsNotNull() {
            addCriterion("o_state is not null");
            return (Criteria) this;
        }

        public Criteria andOStateEqualTo(Integer value) {
            addCriterion("o_state =", value, "oState");
            return (Criteria) this;
        }

        public Criteria andOStateNotEqualTo(Integer value) {
            addCriterion("o_state <>", value, "oState");
            return (Criteria) this;
        }

        public Criteria andOStateGreaterThan(Integer value) {
            addCriterion("o_state >", value, "oState");
            return (Criteria) this;
        }

        public Criteria andOStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("o_state >=", value, "oState");
            return (Criteria) this;
        }

        public Criteria andOStateLessThan(Integer value) {
            addCriterion("o_state <", value, "oState");
            return (Criteria) this;
        }

        public Criteria andOStateLessThanOrEqualTo(Integer value) {
            addCriterion("o_state <=", value, "oState");
            return (Criteria) this;
        }

        public Criteria andOStateIn(List<Integer> values) {
            addCriterion("o_state in", values, "oState");
            return (Criteria) this;
        }

        public Criteria andOStateNotIn(List<Integer> values) {
            addCriterion("o_state not in", values, "oState");
            return (Criteria) this;
        }

        public Criteria andOStateBetween(Integer value1, Integer value2) {
            addCriterion("o_state between", value1, value2, "oState");
            return (Criteria) this;
        }

        public Criteria andOStateNotBetween(Integer value1, Integer value2) {
            addCriterion("o_state not between", value1, value2, "oState");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceIsNull() {
            addCriterion("o_trainerbanlance is null");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceIsNotNull() {
            addCriterion("o_trainerbanlance is not null");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceEqualTo(BigDecimal value) {
            addCriterion("o_trainerbanlance =", value, "oTrainerbanlance");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceNotEqualTo(BigDecimal value) {
            addCriterion("o_trainerbanlance <>", value, "oTrainerbanlance");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceGreaterThan(BigDecimal value) {
            addCriterion("o_trainerbanlance >", value, "oTrainerbanlance");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("o_trainerbanlance >=", value, "oTrainerbanlance");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceLessThan(BigDecimal value) {
            addCriterion("o_trainerbanlance <", value, "oTrainerbanlance");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("o_trainerbanlance <=", value, "oTrainerbanlance");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceIn(List<BigDecimal> values) {
            addCriterion("o_trainerbanlance in", values, "oTrainerbanlance");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceNotIn(List<BigDecimal> values) {
            addCriterion("o_trainerbanlance not in", values, "oTrainerbanlance");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("o_trainerbanlance between", value1, value2, "oTrainerbanlance");
            return (Criteria) this;
        }

        public Criteria andOTrainerbanlanceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("o_trainerbanlance not between", value1, value2, "oTrainerbanlance");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceIsNull() {
            addCriterion("o_gymbanlance is null");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceIsNotNull() {
            addCriterion("o_gymbanlance is not null");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceEqualTo(BigDecimal value) {
            addCriterion("o_gymbanlance =", value, "oGymbanlance");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceNotEqualTo(BigDecimal value) {
            addCriterion("o_gymbanlance <>", value, "oGymbanlance");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceGreaterThan(BigDecimal value) {
            addCriterion("o_gymbanlance >", value, "oGymbanlance");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("o_gymbanlance >=", value, "oGymbanlance");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceLessThan(BigDecimal value) {
            addCriterion("o_gymbanlance <", value, "oGymbanlance");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("o_gymbanlance <=", value, "oGymbanlance");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceIn(List<BigDecimal> values) {
            addCriterion("o_gymbanlance in", values, "oGymbanlance");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceNotIn(List<BigDecimal> values) {
            addCriterion("o_gymbanlance not in", values, "oGymbanlance");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("o_gymbanlance between", value1, value2, "oGymbanlance");
            return (Criteria) this;
        }

        public Criteria andOGymbanlanceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("o_gymbanlance not between", value1, value2, "oGymbanlance");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceIsNull() {
            addCriterion("o_platformbanlance is null");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceIsNotNull() {
            addCriterion("o_platformbanlance is not null");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceEqualTo(BigDecimal value) {
            addCriterion("o_platformbanlance =", value, "oPlatformbanlance");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceNotEqualTo(BigDecimal value) {
            addCriterion("o_platformbanlance <>", value, "oPlatformbanlance");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceGreaterThan(BigDecimal value) {
            addCriterion("o_platformbanlance >", value, "oPlatformbanlance");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("o_platformbanlance >=", value, "oPlatformbanlance");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceLessThan(BigDecimal value) {
            addCriterion("o_platformbanlance <", value, "oPlatformbanlance");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("o_platformbanlance <=", value, "oPlatformbanlance");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceIn(List<BigDecimal> values) {
            addCriterion("o_platformbanlance in", values, "oPlatformbanlance");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceNotIn(List<BigDecimal> values) {
            addCriterion("o_platformbanlance not in", values, "oPlatformbanlance");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("o_platformbanlance between", value1, value2, "oPlatformbanlance");
            return (Criteria) this;
        }

        public Criteria andOPlatformbanlanceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("o_platformbanlance not between", value1, value2, "oPlatformbanlance");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeIsNull() {
            addCriterion("o_createtime is null");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeIsNotNull() {
            addCriterion("o_createtime is not null");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeEqualTo(String value) {
            addCriterion("o_createtime =", value, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeNotEqualTo(String value) {
            addCriterion("o_createtime <>", value, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeGreaterThan(String value) {
            addCriterion("o_createtime >", value, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeGreaterThanOrEqualTo(String value) {
            addCriterion("o_createtime >=", value, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeLessThan(String value) {
            addCriterion("o_createtime <", value, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeLessThanOrEqualTo(String value) {
            addCriterion("o_createtime <=", value, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeLike(String value) {
            addCriterion("o_createtime like", value, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeNotLike(String value) {
            addCriterion("o_createtime not like", value, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeIn(List<String> values) {
            addCriterion("o_createtime in", values, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeNotIn(List<String> values) {
            addCriterion("o_createtime not in", values, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeBetween(String value1, String value2) {
            addCriterion("o_createtime between", value1, value2, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOCreatetimeNotBetween(String value1, String value2) {
            addCriterion("o_createtime not between", value1, value2, "oCreatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeIsNull() {
            addCriterion("o_updatetime is null");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeIsNotNull() {
            addCriterion("o_updatetime is not null");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeEqualTo(String value) {
            addCriterion("o_updatetime =", value, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeNotEqualTo(String value) {
            addCriterion("o_updatetime <>", value, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeGreaterThan(String value) {
            addCriterion("o_updatetime >", value, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeGreaterThanOrEqualTo(String value) {
            addCriterion("o_updatetime >=", value, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeLessThan(String value) {
            addCriterion("o_updatetime <", value, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeLessThanOrEqualTo(String value) {
            addCriterion("o_updatetime <=", value, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeLike(String value) {
            addCriterion("o_updatetime like", value, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeNotLike(String value) {
            addCriterion("o_updatetime not like", value, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeIn(List<String> values) {
            addCriterion("o_updatetime in", values, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeNotIn(List<String> values) {
            addCriterion("o_updatetime not in", values, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeBetween(String value1, String value2) {
            addCriterion("o_updatetime between", value1, value2, "oUpdatetime");
            return (Criteria) this;
        }

        public Criteria andOUpdatetimeNotBetween(String value1, String value2) {
            addCriterion("o_updatetime not between", value1, value2, "oUpdatetime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}